﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace QuanLyPhongKham
{
    public partial class frmPttt : BaseRibbonForm
    {
        private DAL.AccessData m;
        private DataTable dtbs = new DataTable();
        //private DataTable dtdmpttt = new DataTable();
        private DataTable dtpttt = new DataTable();
        private DataTable dtgiavp = new DataTable();
        private long l_maql = 0, l_id = 0;
        private int i_userid = 1;
        private bool bLoad = false;
        private string sql = "", s_makp = "";
        private DataTable dt = new DataTable();
        private DataTable dtviettat = new DataTable();
        public frmPttt(DAL.AccessData acc, long maql, string m_mabn, int userid, bool load)
        {
            this.m = acc;
            this.l_maql = maql;
            this.i_userid = userid;
            this.bLoad = load;
            InitializeComponent();
            mabn.Text = m_mabn;
        }

        private void mabn_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.KeyCode == Keys.Enter)
            {
                try
                {
                    ComboBox cb = (ComboBox)sender;
                    if (cb.SelectedIndex == -1) cb.SelectedIndex = 0;
                    SendKeys.Send("{Tab}{F4}");
                }
                catch { SendKeys.Send("{Tab}{F4}"); }
            }
        }

        private void frmPttt_SizeChanged(object sender, EventArgs e)
        {
            int iChange = (this.Width - 628) / 3 - 5;
            int iChange2 = (this.Width - 628) / 2;
            tinhhinh.Width = iChange + 97;
            //ltaibien.Location = new Point(iChange + 193, 246);
            //taibien.Width = iChange + 97;
            //taibien.Location = new Point(243 + iChange, 240);
            //ltuvong.Location = new Point(329 + (iChange * 2)+10, 246);
            //tuvong.Width = iChange + 85;
            //tuvong.Location = new Point(381 + (iChange * 2)+15, 240);
            phongmo.Width = 117 + iChange2;
            lppvocam.Location = new Point(211 + iChange2, 113);
            ppvocam.Width = 144 + iChange2;
            ppvocam.Location = new Point(323+iChange2, 107);
        }

        private void pButton_SizeChanged(object sender, EventArgs e)
        {
            bNut.Location = new Point((this.Width - 622) / 2 + 1, 15);
        }

        private void frmPttt_Load(object sender, EventArgs e)
        {
            load_ngaypt();
            dtbs=m.get_data("select ma,hoten from " + m.user + ".dmbs where nghiviec=0 order by ma").Tables[0];
            //dtdmpttt= m.get_data("select mapt,noi_dung as tenpt from " + m.user + ".dmpttt order by tenpt").Tables[0];
            listbsi.DisplayMember = "MA";
            listbsi.ValueMember = "HOTEN";
            listbsi.DataSource = dtbs;
            //
            //listpttt.DisplayMember = "MAPT";
            //listpttt.ValueMember = "TENPT";
            //listpttt.DataSource = dtdmpttt;
            ngayvaokham.DisplayMember = "NGAY";
            ngayvaokham.ValueMember = "MAQL";
            cboVienphi.DisplayMember = "TEN";
            cboVienphi.ValueMember = "ID";
            dtgiavp=m.get_data("select * from " + m.user + ".dmgiavp where pttt=1").Tables[0];
            cboVienphi.DataSource = dtgiavp;
            load_viettat();
            if (bLoad)
            {
                ngayvaokham.Visible = false;
                SendKeys.Send("{Tab}{Tab}");
            }
            else
            {
                txtngaykham.Visible = false;
                ngayvaokham.Visible = true;
                SendKeys.Send("{Tab}");
            }
            ena_button(false);
        }
        private void load_viettat()
        {
            dtviettat = m.get_data("select * from " + m.user + ".dmviettat").Tables[0];
        }
        private void get_tenviettat(object sender)
        {
            if (sender.GetType() == typeof(TextBox))
            {
                TextBox txt = (TextBox)sender;
                DataRow rr = m.getrowbyid(dtviettat, "tenvt='" + txt.Text.ToLower() + "'");
                if (rr != null)
                {
                    txt.Text = rr["diengiai"].ToString();
                }
            }
        }
        private void load_ngaypt()
        {
            ngaybatdau.Text = m.ngayhienhanh_server;
            giobatdau.Text = m.giohienhanh_server;
            DateTime dt = m.StringToDateTime(m.ngayhienhanh_server + " " + m.giohienhanh_server);
            ngayketthuc.Text = m.DateToString("dd/MM/yyyy hh:mm", dt.AddMinutes(15)).Substring(0, 10);
            gioketthuc.Text = m.DateToString("dd/MM/yyyy hh:mm", dt.AddMinutes(15)).Substring(11);
        }
        #region LoadControl
        private void ptv_TextChanged(object sender, EventArgs e)
        {
            if (this.ActiveControl == ptv)
            {
                try
                {
                    Filt_tenthuoc(ptv.Text);
                    listbsi.BrowseToTonkho(ptv, maptv, maphu1, maptv.Location.X, maptv.Location.Y + maptv.Height, maptv.Width + ptv.Width + 2, maptv.Height);

                }
                catch { }
            }
        }
        private void Filt_tenthuoc(string ten)
        {
            try
            {
                CurrencyManager cm = (CurrencyManager)BindingContext[listbsi.DataSource];
                DataView dv = (DataView)cm.List;
                dv.RowFilter = "hoten like '%" + ten.Trim() + "%'";
            }
            catch { }
        }

        private void ptv_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.KeyCode == Keys.Down || e.KeyCode == Keys.Up) listbsi.Focus();
            else if (e.KeyCode == Keys.Enter)
            {
                if (listbsi.Visible) listbsi.Focus();
                else SendKeys.Send("{Tab}{Home}");
            }
        }

        private void phu1_TextChanged(object sender, EventArgs e)
        {
            if (this.ActiveControl == phu1)
            {
                try
                {
                    Filt_tenthuoc(phu1.Text);
                    listbsi.BrowseToTonkho(phu1, maphu1, maphu2, maphu1.Location.X, maphu1.Location.Y + maphu1.Height, maphu1.Width + phu1.Width + 2, maphu1.Height);
                }
                catch { }
            }
        }

        private void phu2_TextChanged(object sender, EventArgs e)
        {
            if (this.ActiveControl == phu2)
            {
                try
                {
                    Filt_tenthuoc(phu2.Text);
                    listbsi.BrowseToTonkho(phu2, maphu2, magayme1, maphu2.Location.X, maphu2.Location.Y + maphu2.Height, maphu2.Width + phu2.Width + 2, maphu2.Height);
                }
                catch { }
            }
        }

        private void gayme1_TextChanged(object sender, EventArgs e)
        {
            if (this.ActiveControl == gayme1)
            {
                try
                {
                    Filt_tenthuoc(gayme1.Text);
                    listbsi.BrowseToTonkho(gayme1, magayme1, magayme2, magayme1.Location.X, magayme1.Location.Y + magayme1.Height, magayme1.Width + gayme1.Width + 2, magayme1.Height);
                }
                catch { }
            }
        }

        private void gayme2_TextChanged(object sender, EventArgs e)
        {
            if (this.ActiveControl == gayme2)
            {
                try
                {
                    Filt_tenthuoc(gayme2.Text);
                    listbsi.BrowseToTonkho(gayme2, magayme2, tinhhinh, magayme2.Location.X, magayme2.Location.Y + magayme2.Height, magayme2.Width + gayme2.Width + 2, magayme2.Height);
                }
                catch { }
            }
        }
        private void phuongphap_TextChanged(object sender, EventArgs e)
        {
            //if (this.ActiveControl == phuongphap)
            //{
            //    try
            //    {
            //        Filt_dmpttt(phuongphap.Text);
            //        listpttt.BrowseToTonkho(phuongphap, maphongphap, phongmo, maphongphap.Location.X, maphongphap.Location.Y + maphongphap.Height, maphongphap.Width + phuongphap.Width + 2, maphongphap.Height);

            //    }
            //    catch { }
            //}
        }
        private void Filt_dmpttt(string ten)
        {
            try
            {
                CurrencyManager cm = (CurrencyManager)BindingContext[listpttt.DataSource];
                DataView dv = (DataView)cm.List;
                dv.RowFilter = "tenpt like '%" + ten.Trim() + "%' or mapt like '%" + ten.Trim() + "%'";
            }
            catch { }
        }
        private void phuongphap_KeyDown(object sender, KeyEventArgs e)
        {
            if(e.KeyCode == Keys.Enter)
            {
                get_tenviettat(sender);
                SendKeys.Send("{Tab}");
            }
        }

        private void maphongphap_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.KeyCode == Keys.Enter)
                SendKeys.Send("{Tab}");
        }
        private void maptv_Validated(object sender, EventArgs e)
        {
            try 
            {
                DataRow r = m.getrowbyid(dtbs, "ma='" + maptv.Text.PadLeft(4,'0') + "'");
                if (r != null)
                {
                    maptv.Text = r["ma"].ToString();
                    ptv.Text = r["hoten"].ToString();
                }
                else 
                {
                    maptv.Text = "";
                }
            }
            catch { }       
        }

        private void maphu1_Validated(object sender, EventArgs e)
        {
            try
            {
                DataRow r = m.getrowbyid(dtbs, "ma='" + maphu1.Text.PadLeft(4, '0') + "'");
                if (r != null)
                {
                    maphu1.Text = r["ma"].ToString();
                    phu1.Text = r["hoten"].ToString();
                }
                else maphu1.Text = "";
            }
            catch { }     
        }

        private void maphu2_Validated(object sender, EventArgs e)
        {
            try
            {
                DataRow r = m.getrowbyid(dtbs, "ma='" + maphu2.Text.PadLeft(4, '0') + "'");
                if (r != null)
                {
                    maphu2.Text = r["ma"].ToString();
                    phu2.Text = r["hoten"].ToString();
                }
                else maphu2.Text = "";
            }
            catch { }     
        }

        private void magayme1_Validated(object sender, EventArgs e)
        {
            try
            {
                DataRow r = m.getrowbyid(dtbs, "ma='" + magayme1.Text.PadLeft(4, '0') + "'");
                if (r != null)
                {
                    magayme1.Text = r["ma"].ToString();
                    gayme1.Text = r["hoten"].ToString();
                }
                else magayme1.Text = "";
            }
            catch { }     
        }

        private void magayme2_Validated(object sender, EventArgs e)
        {
            try
            {
                DataRow r = m.getrowbyid(dtbs, "ma='" + magayme2.Text.PadLeft(4, '0') + "'");
                if (r != null)
                {
                    magayme2.Text = r["ma"].ToString();
                    gayme2.Text = r["hoten"].ToString();
                }
                else magayme2.Text = "";
            }
            catch { }     
        }
        private void ena_button(bool ena)
        {
            butMoi.Enabled = ena;
            butLuu.Enabled = !ena;
            butSua.Enabled = ena;
            butHuy.Enabled = ena;
            butBoqua.Enabled = !ena;
            butIn.Enabled = ena;
            butKetthuc.Enabled = ena;
        }
        private void empty_text()
        {   
            mabn.Text = "";
            hoten.Text = "";
            namsinh.Text = "";
            gioitinh.Text = "";
            diachi.Text = "";
            phongkham.Text = "";
            chandoan.Text = "";
            txtngaykham.Text = "";
            mach.Text = "";
            nhietdo.Text = "";
            huyetap.Text = "";
            cannang.Text = "";
            cdtruoc.Text = "";
            cdsau.Text = "";
            phuongphap.Text = "";
            ngaybatdau.Text = "";
            giobatdau.Text = "";
            ngayketthuc.Text = "";
            gioketthuc.Text = "";
            ppvocam.SelectedIndex = -1;
            phongmo.SelectedIndex = -1;
            maptv.Text = "";
            ptv.Text = "";
            maphu1.Text = ""; phu1.Text = "";
            maphu2.Text = ""; phu2.Text = "";
            magayme1.Text = ""; gayme1.Text = "";
            magayme2.Text = ""; gayme2.Text = "";
            tuongtrinh.Text = "";
            tinhhinh.SelectedIndex = -1;
            taibien.SelectedIndex = -1;
            tuvong.SelectedIndex = -1;
        }
        private void ena_detail(bool ena)
        {
            mabn.Enabled=ena;
            mach.Enabled=ena;
            nhietdo.Enabled=ena;
            huyetap.Enabled=ena;
            cannang.Enabled=ena;
            cdtruoc.Enabled=ena;
            cdsau.Enabled=ena;
            phuongphap.Enabled=ena;
            ngaybatdau.Enabled=ena;
            giobatdau.Enabled=ena;
            ngayketthuc.Enabled=ena;
            gioketthuc.Enabled=ena;
            ppvocam.Enabled = ena;
            phongmo.Enabled = ena;
            maptv.Enabled=ena;
            ptv.Enabled=ena;
            maphu1.Enabled=ena; phu1.Enabled=ena;
            maphu2.Enabled=ena; phu2.Enabled=ena;
            magayme1.Enabled=ena; gayme1.Enabled=ena;
            magayme2.Enabled=ena; gayme2.Enabled=ena;
            tuongtrinh.Enabled=ena;
            tinhhinh.Enabled = ena;
            taibien.Enabled = ena;
            tuvong.Enabled = ena;
            ngayvaokham.Enabled = ena;
            cboVienphi.Enabled = ena;
        }
        #endregion
        private void butMoi_Click(object sender, EventArgs e)
        {
            l_maql = 0;
            treeView1.Nodes.Clear();
            dt.Clear();
            ngayvaokham.Refresh();
            ena_button(false);
            empty_text();
            ena_detail(true);
            load_ngaypt();
            txtngaykham.Visible = false;
            ngayvaokham.Visible = true;
            ngayvaokham.BringToFront();
            mabn.Focus();
        }

        private void butSua_Click(object sender, EventArgs e)
        {
            if (kiemtra_thutien())
            {
                MessageBox.Show("Thủ thuật này BN đã đóng tiền, không được chỉnh sửa!\nHuỷ hoá đơn đã thu dưới phòng viện phí để có thể chỉnh sửa thông tin!", DAL.AccessData.Msg);
                return;
            }
            ena_button(false);
            ena_detail(true);
            cdtruoc.Focus();
        }

        private void butBoqua_Click(object sender, EventArgs e)
        {
            ena_button(true);
            ena_detail(false);
            
        }

        private void butKetthuc_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        private void mach_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.KeyCode==Keys.Enter)
            {
                if (mach.Text.Trim() == "") cdtruoc.Focus();
                else SendKeys.Send("{Tab}");
            }
        }

        private void mabn_Validated(object sender, EventArgs e)
        {
            if (mabn.Text.Trim() != "")
            {
                if (mabn.Text.Trim().Length > 2)
                {
                    mabn.Text = mabn.Text.Substring(0, 2) + mabn.Text.Substring(2).PadLeft(6, '0');
                    load_mabn();
                    if (dt.Rows.Count == 0)
                    {
                        MessageBox.Show("Không tìm thấy thông tin bệnh nhân này", DAL.AccessData.Msg);
                        mabn.Focus();
                        return;
                    }
                    load_caclanpttt();
                    if (bLoad)
                    {
                        if (mach.Text.Trim() != "") cdtruoc.Focus();
                        else mach.Focus();
                    }
                }
                else mabn.Focus();
            }
        }
        private void load_mabn()
        {
            sql = "select to_char(a.ngay,'yyyymmdd hh24:mi') as sort,to_char(a.ngay,'dd/mm/yyyy hh24:mi') as ngay, a.mabn, a.maql, a.makp, b.tenkp, a.chandoan, ";
            sql += " g.mach, g.nhietdo, g.huyetap, g.cannang, c.hoten, c.namsinh, c.phai, trim(trim(trim(c.diachi||' - '||f.tenpxa||' - '||e.tenquan||' - '||d.tentt),'-')) as diachi from " + m.user + ".benhanpk a inner join " + m.user + ".btdkp b on a.makp=b.makp ";
            sql += " inner join " + m.user + ".btdbn c on a.mabn=c.mabn inner join " + m.user + ".btdtt d on c.matt=d.matt inner join " + m.user + ".btdquan e on c.maqu=e.maqu inner join " + m.user + ".btdpxa f on c.maphuongxa=f.maphuongxa left join " + m.user + ".dausinhton g on a.maql=g.maql";
            sql += " where a.mabn='" + mabn.Text.Trim() + "'";
            sql += " order by sort desc";
            dt = m.get_data(sql).Tables[0];
            ngayvaokham.DataSource = dt;
        }
        private void load_caclanpttt()
        {
            sql = "select to_char(a.ngay,'yyyymmdd hh24:mi') as sort, a.id, a.maql, a.mapmo ,to_char(a.ngay,'dd/mm/yyyy hh24:mi') as ngay, to_char(a.ngaykt,'dd/mm/yyyy hh24:mi') as ngaykt, a.maicdt, ";
            sql += "a.maicds, a.chandoant, a.chandoans, a. mapt, a.tenpt, a.phuongphap, a.tinhhinh, a.tuvong, a.taibien, a.tuongtrinh, a.ptv, a.phu1, a.phu2, a.gayme1, a.gayme2";
            sql += " from " + m.user + ".pttt a where a.mabn='" + mabn.Text.Trim() + "' order by sort desc";
            dtpttt = m.get_data(sql).Tables[0];
            TreeNode node;
            treeView1.Nodes.Clear();
            foreach (DataRow r in dtpttt.Rows)
            {
                node = new TreeNode(r["ngay"].ToString());
                node.Tag = r["id"].ToString();
                node.Nodes.Add(r["tenpt"].ToString());
                treeView1.Nodes.Add(node);
            }
        }
        private void load_detail()
        {
            DataRow r = m.getrowbyid(dtpttt, "id=" + l_id);
            if (r != null)
            {
                l_maql = long.Parse(r["maql"].ToString());
                ngayvaokham.SelectedValue = l_maql;
                ngayvaokham_SelectedIndexChanged(null, null);
                cdtruoc.Text = r["chandoant"].ToString();
                cdsau.Text = r["chandoans"].ToString();
                ngaybatdau.Text = r["ngay"].ToString().Substring(0, 10);
                giobatdau.Text = r["ngay"].ToString().Substring(11);
                ngayketthuc.Text = r["ngaykt"].ToString().Substring(0, 10);
                gioketthuc.Text = r["ngaykt"].ToString().Substring(11);
                phuongphap.Text = r["tenpt"].ToString();
                phongmo.SelectedIndex = int.Parse(r["mapmo"].ToString());
                ppvocam.SelectedIndex = int.Parse(r["phuongphap"].ToString());
                maptv.Text = r["ptv"].ToString();
                maptv_Validated(null, null);
                maphu1.Text = r["ptv"].ToString();
                maphu1_Validated(null, null);
                maphu2.Text = r["ptv"].ToString();
                maphu2_Validated(null, null);
                magayme1.Text = r["ptv"].ToString();
                magayme1_Validated(null, null);
                magayme2.Text = r["ptv"].ToString();
                magayme2_Validated(null, null);
                tinhhinh.SelectedIndex = int.Parse(r["tinhhinh"].ToString());
                taibien.SelectedIndex = int.Parse(r["taibien"].ToString());
                tuvong.SelectedIndex = int.Parse(r["tuvong"].ToString());
                tuongtrinh.Text = r["tuongtrinh"].ToString();
                foreach (DataRow rr in m.get_data("select * from " + m.user + ".v_chidinh where id=" + l_maql + " and idchidinh=" + l_id).Tables[0].Rows)
                {
                    cboVienphi.SelectedValue = rr["mavp"].ToString();
                    decimal d_dongia = decimal.Parse(rr["dongia"].ToString());
                    dongia.Text = d_dongia.ToString("###,###,##0");
                    break;
                }
            }
        }
        private void mabn_KeyPress(object sender, KeyPressEventArgs e)
        {
            MaskDigit(e);
        }
        private void MaskDigit(KeyPressEventArgs e)
        {
            if (Char.IsDigit(e.KeyChar) || e.KeyChar == 8) e.Handled = false;
            else e.Handled = true;
        }

        private void ngayvaokham_SelectedIndexChanged(object sender, EventArgs e)
        {
            try 
            {
                l_maql=long.Parse(ngayvaokham.SelectedValue.ToString());
                DataRow r = m.getrowbyid(dt, "maql=" + l_maql);
                if (r != null)
                {
                    mabn.Text = r["mabn"].ToString();
                    hoten.Text = r["hoten"].ToString();
                    namsinh.Text = r["namsinh"].ToString();
                    gioitinh.Text = (r["phai"].ToString() == "1") ? "Nữ" : "Nam";
                    diachi.Text = r["diachi"].ToString();
                    s_makp = r["makp"].ToString();
                    phongkham.Text = r["tenkp"].ToString();
                    chandoan.Text = r["chandoan"].ToString();
                    txtngaykham.Text = r["ngay"].ToString();
                    mach.Text = r["mach"].ToString();
                    nhietdo.Text = r["nhietdo"].ToString();
                    huyetap.Text = r["huyetap"].ToString();
                    cannang.Text = r["cannang"].ToString();
                }
            }
            catch { l_maql = 0; }
        }
        private void butLuu_Click(object sender, EventArgs e)
        {
            if (kiemtra())
            {
                if (kiemtra_thutien())
                {
                    MessageBox.Show("Thủ thuật này BN đã đóng tiền, không được chỉnh sửa!\nHuỷ hoá đơn đã thu dưới phòng viện phí để có thể chỉnh sửa thông tin!", DAL.AccessData.Msg);
                    ena_button(true);
                    ena_detail(false);
                    return;
                }
                l_id = (l_id == 0) ? m.get_capid_pttt : l_id;
                if (!m.upd_pttt(l_id, mabn.Text.Trim(), l_maql, s_makp, phongmo.SelectedIndex.ToString(), ngaybatdau.Text.Trim() + " " + giobatdau.Text.Trim(), "", cdtruoc.Text, "", cdsau.Text, "", phuongphap.Text, ppvocam.SelectedIndex.ToString(), tinhhinh.SelectedIndex, taibien.SelectedIndex, tuvong.SelectedIndex, i_userid, ngayketthuc.Text.Trim() + " " + gioketthuc.Text.Trim(), tuongtrinh.Text, maptv.Text, maphu1.Text, maphu2.Text, magayme1.Text, magayme2.Text,int.Parse(cboVienphi.SelectedValue.ToString())))
                {
                    MessageBox.Show("Không cập nhật được thông tin phẫu thuật - thủ thuật!", DAL.AccessData.Msg);
                    return;
                }
                if (mach.Text != "" || nhietdo.Text != "" || huyetap.Text != "" || cannang.Text != "")
                {
                    m.execute_data("update "+m.user+".dausinhton set mach=" + ((mach.Text == "") ? 0 : decimal.Parse(mach.Text)) + ", nhietdo=" + ((nhietdo.Text == "") ? 0 : decimal.Parse(nhietdo.Text)) + ",huyetap=" + huyetap.Text + ",cannang=" + ((cannang.Text == "") ? 0 : decimal.Parse(cannang.Text)) + " where maql=" + l_maql);
                }
                //Chi dinh
                m.execute_data("update " + m.user + ".benhanpk set done=1 where maql=" + l_maql);
                m.upd_chidinh(l_maql, get_stt_chidinh(), mabn.Text, l_maql, m.ngayhienhanh_server, s_makp, 2, -9997, 1, decimal.Parse(dongia.Text), 0, 0, i_userid, l_id, "pttt", maptv.Text);
                ena_button(true);
                ena_detail(false);
            }
        }
        private bool kiemtra_thutien()
        {
            if (m.get_data("select mabn from " + m.user + ".v_chidinh where paid=1 and id=" + l_maql + " and idchidinh=" + l_id).Tables[0].Rows.Count > 0)
            {
                return true;
            }
            return false;
        }
        private int get_stt_chidinh()
        {
            int _stt=0;
            sql = "select stt from " + m.user + ".v_chidinh where id=" + l_maql + " order by stt desc";
            foreach (DataRow r in m.get_data(sql).Tables[0].Rows)
            {
                _stt = int.Parse(r["stt"].ToString());
                break;
            }
            return _stt += 1;
        }
        private bool kiemtra()
        {
            if (hoten.Text.Trim() == "")
            {
                MessageBox.Show("Nhập mã bệnh nhân!",DAL.AccessData.Msg);
                mabn.Focus(); return false;
            }
            if (maptv.Text.Trim() == "")
            {
                MessageBox.Show("Nhập phẫu thuật viên làm phẩu - thủ thuật!", DAL.AccessData.Msg);
                maptv.Focus(); return false;
            }
            if (ngaybatdau.Text == "")
            {
                MessageBox.Show("Nhập ngày bắt đầu làm phẩu - thủ thuật!", DAL.AccessData.Msg);
                ngaybatdau.Focus(); return false;
            }
            if (giobatdau.Text == "")
            {
                MessageBox.Show("Nhập giờ bắt đầu làm phẩu - thủ thuật!", DAL.AccessData.Msg);
                giobatdau.Focus(); return false;
            }
            if (ngayketthuc.Text == "")
            {
                MessageBox.Show("Nhập ngày kết thúc phẩu - thủ thuật!", DAL.AccessData.Msg);
                ngayketthuc.Focus(); return false;
            }
            if (giobatdau.Text == "")
            {
                MessageBox.Show("Nhập giờ kết thúc phẩu - thủ thuật!", DAL.AccessData.Msg);
                gioketthuc.Focus(); return false;
            }
            if (dongia.Text.Trim() == "")
            {
                MessageBox.Show("Nhập số tiền thủ thuật!", DAL.AccessData.Msg);
                dongia.Focus(); return false;
            }
            return true;
        }
        private void mach_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (Char.IsDigit(e.KeyChar) || e.KeyChar == 8 || e.KeyChar=='/') e.Handled = false;
            else e.Handled = true;
        }

        private void nhietdo_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (Char.IsDigit(e.KeyChar) || e.KeyChar == 8 || e.KeyChar == '.') e.Handled = false;
            else e.Handled = true;
        }

        private void butHuy_Click(object sender, EventArgs e)
        {
            if (l_id == 0) return;
            if (kiemtra_thutien())
            {
                MessageBox.Show("Thủ thuật này BN đã đóng tiền, không được huỷ!\nHuỷ hoá đơn đã thu dưới phòng viện phí để có thể chỉnh sửa thông tin!", DAL.AccessData.Msg);
                return;
            }
            if(MessageBox.Show("Bạn có đồng ý huỷ thông tin này không?",DAL.AccessData.Msg,MessageBoxButtons.YesNo,MessageBoxIcon.Question)==DialogResult.Yes)
            {
                m.execute_data("delete from " + m.user + ".pttt where id=" + l_id);
                m.execute_data("delete from " + m.user + ".v_chidinh where id=" + l_maql + " and idchidinh=" + l_id);
                ena_button(true);
                empty_text();
                ena_detail(false);
                load_caclanpttt();
            }
        }

        private void treeView1_AfterSelect(object sender, TreeViewEventArgs e)
        {
            if (e.Action == TreeViewAction.ByMouse || e.Action == TreeViewAction.ByKeyboard)
            {
                if (e.Node.Text.ToString().IndexOf('/') != -1 && e.Node.Text.ToString().IndexOf(':') != -1)
                {
                    ena_detail(false);
                    ena_button(true);
                    l_id = long.Parse(e.Node.Tag.ToString());
                    load_detail();
                }
            }
        }

        private void ngayvaokham_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.KeyCode == Keys.Enter)
            {
                if (mach.Text.Trim() != "") cdtruoc.Focus();
                else mach.Focus();
            }
        }

        private void cdtruoc_Validated(object sender, EventArgs e)
        {
            cdsau.Text = cdtruoc.Text;
        }

        private void cboVienphi_SelectedIndexChanged(object sender, EventArgs e)
        {
            //DataRow rr = m.getrowbyid(dtgiavp, "id=" + long.Parse(cboVienphi.SelectedValue.ToString()));
            //if (rr != null)
            //{
            //    decimal d_dongia = decimal.Parse(rr["dongia"].ToString());
            //    dongia.Text = d_dongia.ToString("###,###,##0");
            //}
        }

        private void tuongtrinh_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.KeyCode == Keys.Tab)
            {
                butLuu.Focus();
            }
        }

        private void butIn_Click(object sender, EventArgs e)
        {
            if (l_id == 0) return;
            DataSet dst = new DataSet();
            sql = "select a.*,b.hoten,b.namsinh,b.phai,b.cholam,trim(b.diachi||' '||e.tenpxa||' '||d.tenquan||' '||c.tentt) as diachi from " + m.user + ".pttt a, " + m.user + ".btdbn b, " + m.user + ".btdtt c, " + m.user + ".btdquan d, " + m.user + ".btdpxa e ";
            sql += " where a.mabn=b.mabn and b.matt=c.matt and b.maqu=d.maqu and b.maphuongxa=e.maphuongxa and a.id=" + l_id;
            dst = m.get_data(sql);
            dst.WriteXml(@"..\pttt.xml", XmlWriteMode.WriteSchema);
            if (dst.Tables[0].Rows.Count == 0) return;
            frmReport f = new frmReport(m, dst.Tables[0], "", "rptPttt.rpt", "", "", "", "", "", "", "", "", "", "", "", "");
            //f.ShowDialog();
            this.FormMain.OpenTab("PTTT", f);
        }

        private void dongia_Validated(object sender, EventArgs e)
        {
            try
            {
                if (dongia.Text.Trim().Length < 5)
                {
                    MessageBox.Show("Giá khám không được nhỏ hơn 10.000!", DAL.AccessData.Msg);
                    dongia.Focus(); return;
                }
                decimal d_dongia = 0;
                if (dongia.Text.Trim() != "")
                    d_dongia = decimal.Parse(dongia.Text);
                dongia.Text = d_dongia.ToString("###,###,##0");
            }
            catch { }
        }

        private void dongia_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.KeyCode == Keys.Enter)
            {
                butLuu.Focus();
            }
        }
    }
}